package wiki.daos;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.ArrayList;

import wiki.banco.Conexao;
import wiki.beans.Comentario;

public class ComentarioDAO 
{
    Conexao conexao;

	public ComentarioDAO()
        {
		this.conexao = new Conexao();
	}

	public void addComentario(Comentario comentario)
	{           
            
            String sql = "insert into comentario (idComentario, codUsuario, idNoticias, conteudo, data) values (?,?,?,?,?)";
		
            conexao.preparar(sql);
            try{ 
                conexao.getPstmt().setInt(1, comentario.getIdComentario());
                conexao.getPstmt().setInt(2, comentario.getCodUsuario());
                conexao.getPstmt().setInt(3, comentario.getCodNoticia());
                conexao.getPstmt().setString(4, comentario.getConteudo());
                conexao.getPstmt().setTimestamp(5, new Timestamp(comentario.getData().getTimeInMillis()));
                                        
			conexao.executeQuery();
			conexao.fechar();
		} catch(SQLException e) {
			throw new RuntimeException(e);
		}
	}
	
    public void delcomentario (Comentario comentario)
    {
        String query = "delete from comentario where idComentario = ?";  
        
        conexao.preparar(query);
        try{
        	
		conexao.getPstmt().setInt(1, comentario.getIdComentario());
		
		conexao.executeQuery();
		conexao.fechar();
        }
        catch(SQLException e) {
        	
        	throw new RuntimeException(e);
        }
   }
        
    public ArrayList<Comentario> getList(){
    	
    	String query = "SELECT idComentario, conteudo, codUsuario, codNoticia, DATE_FORMAT(data, '%d/%m/%Y %H:%m:%s') data FROM comentario";
    	
    	conexao.preparar(query);
		try{
		
			ArrayList<Comentario> comentarios = new ArrayList<Comentario>();
		
			ResultSet rs = conexao.executeQuery();
		
			while(rs.next())
			{
				Comentario comentario = new Comentario();
				//comentario.setId_user(rs.getInt("Usuario"));
				comentario.setCodNoticia(rs.getInt("idComentario"));
				//comentario.setId_comentario(rs.getInt("Comentario"));
				comentario.setConteudo(rs.getString("conteudo"));
				comentario.setCodUsuario(rs.getInt("codUsuario"));
				comentario.setCodNoticia(rs.getInt("codNoticia"));
				comentario.setData(rs.getString("data"));
	                            
	                            
				comentarios.add(comentario);
			}
			rs.close();
			conexao.fechar();
			
			return comentarios;
		}
		catch(SQLException e){
		throw new RuntimeException(e);
		}
    }
    
   @SuppressWarnings("finally")
public boolean Atualiza(Comentario comentario)
   {           
      boolean resultado = false;
	   
      String query = "update comentario set conteudo=? where idcomentario= ?";
      conexao.preparar(query);
      
      try{
			                        
                        //stmt.setInt(2, Upd_Atualiza.getId_noticia());
			conexao.getPstmt().setString(1, comentario.getConteudo());
			conexao.getPstmt().setInt(2, comentario.getIdComentario());
                        //stmt.setTimestamp(4, Upd_Atualiza.getCadastro());
                        
                        
			resultado = conexao.executeUpdate();
			conexao.fechar();
		}
		catch(SQLException e) {
			throw new RuntimeException(e);
		}
      	finally
      	{
      		return resultado;
      	}
      
	}
}
